package com.example.tool.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.tool.entity.Dict;
import com.example.tool.exception.dict.DictIsNotExistException;
import com.example.tool.exception.dict.DictTypeIsExistException;
import com.example.tool.vo.DictReqVO;

import java.util.List;

public interface DictService {
    List<Dict> list(); //加载全部字典

    /**
     * 根据字典类型加载字典
     * @param type 字典类型
     * @return 字典List
     */
    List<Dict> listByType(String type);

    /**
     * 查询字典分页数据
     * @param page 页数
     * @param rows 数据行
     * @param dictReqVO 字典查询VO
     * @return 分页数据
     */
    Page<Dict> selectPage(Integer page, Integer rows, DictReqVO dictReqVO);

    /**
     * 新增字典
     * @param dict 字典实体类
     * @throws DictTypeIsExistException 已经存在该类型 相同的字典名
     */
    void add(Dict dict) throws DictTypeIsExistException;

    /**
     * 通过id删除
     * @param id 数据id
     */
    void delById(String id) throws DictIsNotExistException;

    /**
     * 修改字典数据
     * @param dict 字典实体类
     */
    void modify(Dict dict) throws DictTypeIsExistException;
}
